home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fritz: All Fritz
/
All Fritz.zip
/
All Fritz
/
FILES
/
DATAUTIL
/
DBASEUT1.LZH
/
CATALOG.PRG
< prev
next >
Wrap
Text File
|
1986-02-28
|
29KB
|
1,541 lines
PROCEDURE ADDDIR
PARAMETER AD,ROW,DR,SEARCH,DKIND
STOR 0 TO COMFLAG,TG
STOR 'Y' TO MORE
DO WHIL UPPER(MORE)='Y'
CLEA
DO WHIL AD=0
SET COLOR TO W+
@ 1,0 SAY 'DSK-CATV1.0'
@ 1,36 SAY DTOC(DATE())
@ 1,70 SAY 'JoLie(85)'
SET COLOR TO W
@ 10,20 SAY ' '
@ 1,0 SAY ' '
TEXT
ADD DIRECTORY OPTIONS
[1] Auto catalog. Automatically logs with no entries
[2] Manual log. Add comments,catagory.
[3] Manual log & Display catagories.
[4] Auto comment
[5] Abort Add directory.
ENDTEXT
@ 10,20 SAY ' '
IF COMFLAG=1
SET COLOR TO W+*
@ 7,32 SAY '<= ON'
SET COLOR TO W
@ 10,20 SAY '<- Now enter catalog option'
ELSE
@ 7,32 SAY ' '
ENDI
SET TALK OFF
PUBLIC START,FINISH,P
STOR 0 TO START,FINISH
STOR SPACE(29) TO P,FILLER
STOR 'B' TO D
STOR 'Y' TO COM
STOR 6 TO RW
STOR 'Y' TO MORE
@ 10,0 SAY 'Enter option # :' GET AD PICTURE "9" RANGE 1,5
READ
CLEA GETS
IF AD=4
DO CASE
CASE TG=0
@ 7,32 SAY '<= ON'
STOR 1 TO COMFLAG
STOR SPACE(30) TO ACOM
AD=0
TG=1
@ 14,0 CLEAR
LOOP
CASE TG=1
@ 7,32 SAY ' '
STOR 0 TO COMFLAG
AD=0
TG=0
@ 14,0 CLEAR
LOOP
ENDC
ENDI
STOR 'NONE' TO IDSPEC
@ 12,0 SAY 'Enter ID reference ' GET IDSPEC PICTURE "XXXX"
IF COMFLAG=1
@ 14,0 SAY 'Enter Comment ' GET ACOM
ENDI
READ
CLEA GETS
READ
CLEA GETS
IF IDSPEC=' '
IDSPEC='NONE'
ENDI
IF AD=5
EXIT
ENDI
ENDD
CLEA
SET COLOR TO W+
@ 1,0 SAY 'DSK-CATV1.0'
@ 1,36 SAY DTOC(DATE())
@ 1,70 SAY 'JoLie(85)'
SET COLOR TO W
TEXT
DUPLICATE RECORD PARAMETERS
[1] Duplicate system off.
[2] Log all files. Mark duplicates.
[3] Log only new files. Filter dupes.
[4] Auto delete duplicate file.
ENDTEXT
@ 20,0 SAY 'Enter option 'GET DR PICTURE "9" RANGE 1,4
READ
CLEA GETS
CLEA
SET COLOR TO W+
@ 1,0 SAY 'DSK-CATV1.0'
@ 1,36 SAY DTOC(DATE())
@ 1,70 SAY 'JoLie(85)'
SET COLOR TO W
@ 4,0 SAY FILLER
@ 3,0 SAY 'Enter Drive ' GET D PICTURE "X"
@ 4,0 SAY 'Enter Path ' GET P
READ
CLEA GETS
@5,0 SAY 'Please wait while the files are entered into '+;
'the catalog.'
SET TALK OFF
STOR CHR(34)+D+':'+P+CHR(34) TO PT
IF AD=1
SET COLOR TO /W
@ 6,28 SAY 'CATALOG SYSTEM IN PROGRESS'
SET COLOR TO W
RW=RW+1
IF RW>=21
@ 7,0 CLEAR
RW=7
ENDI
@ RW,0 SAY &PT
ENDI
DO READIR WITH &PT,"CATALOG"
@ 22,0 SAY 'Enter another [Y/N] ' GET MORE PICTURE "X"
READ
CLEA GETS
CLEA
IF UPPER(MORE)='N'
CLOSE DATABASES
RETU
ELSE
AD=0
ENDI
ENDD
PROCEDURE READIR
close databases
parameters pathspec,catfile
select 1
USE &DP:catspec
SET TALK off
SET safety off
STOR SPACE(30) TO PATHFILT
STOR 0 TO RECORD_NO
zap
@ 20,0 SAY 'PREPARING DIRECTORY'
IF file('&DP:catdir.txt')
ERAS &DP:catdir.txt
ENDI
cmd='dir ' + pathspec + '>&DP:catdir.txt'
run &cmd
IF file('&DP:catdir.txt')
APPE from &DP:catdir.txt for recno()<=3 sdf
IF recno()>=3
GOTO 2
voln=upper(trim(substr(line,23,11)))
GOTO 3
pathn=upper(trim(substr(line,at('\',line),29)))
PATHFILT=UPPER(SUBSTR(LINE,AT('\',LINE),29))
@ 20,0 SAY 'NOW DIRECTING DATA '
copy file &DP:catwork.dbf to &DP:cattemp.dbf
USE &DP:cattemp alias temp
APPE from &DP:catdir.txt sdf
SET filter to size>0
select 2
IF .not. file('&DP:&catfile..dbf')
@ 20,0 SAY 'PREPARING DATA FILE'
copy file &DP:catnew.dbf to &DP:&catfile..dbf
ENDI
USE &DP:&catfile INDEX &IN:NAME_EXT
SELECT 2
GOTO bottom
START=RECNO()
select temp
GOTO top
CLEA
STOR SPACE(12) TO PREVIOUS
STOR 3 TO ROW
IF AD=3
STOR 7 TO ROW
ENDI
STOR 0 TO COL,CT,DFLAG
DO WHIL .not. eof()
select &catfile
IF DR<>3
APPE BLAN
@ 22,0 SAY ' '
RECORD_NO=RECNO()
ENDI
CT=CT+1
SEARCH=TRIM(TEMP->NAME)
DKIND=TRIM(TEMP->EXT)
SET COLOR TO /W
IF DR=2
SEEK SEARCH-DKIND
IF .NOT. EOF()
@ 22,0 SAY SEARCH+'.'+DKIND+' '+CHR(17)+'- DUPE'
SET BELL ON
?? CHR(7)
SET BELL OFF
GO RECORD_NO
REPL DUPE WITH '*'
ELSE
GO RECORD_NO
ENDI
ENDI
IF DR=3
DO WHIL .T.
DFLAG=0
SEEK SEARCH-DKIND
IF .NOT. EOF()
SET BELL ON
?? CHR(7)
SET BELL OFF
@ 22,0 SAY CHR(16)+' DUPLICATE Not entered into catalog '+CHR(17)
DFLAG=1
EXIT
ELSE
APPE BLAN
RECORD_NO=RECNO()
GO RECORD_NO
EXIT
ENDI
ENDD
ENDI
IF DR<>4 .AND. DFLAG=0
GO RECORD_NO
REPL name with temp->name,ext with temp->ext, ;
size with temp->size,date with ctod(temp->date),;
time with substr(temp->time,3),vol with voln
REPL path with pathn
NAME=TRIM(NAME)
EXT=TRIM(EXT)
VOL=TRIM(VOL)
PATH=TRIM(PATH)
REPL ID WITH TRIM(IDSPEC)
IF SUBSTR(VOL,1,3)=' NO'
REPL VOL WITH 'NO LABEL'
ENDI
IF SUBSTR(PATHFILT,1,2)='\ '
REPL PATH WITH '\ROOT DIRECTORY'
ENDI
SET COLOR TO U+
@ 1,0 SAY '===============================> '+;
' <================================'
IF AD=1
@ 1,33 SAY 'AUTO CATALOG'
ELSE
@ 1,33 SAY 'COMMENT ENTRY'
ENDI
SET COLOR TO W
IF AD=3
DO CATVIEW
IF ROW>20
ROW=7
ENDI
ENDI
IF PREVIOUS>' '
@ ROW,COL SAY PREVIOUS+CHR(186)
COL=COL+13
IF COL>=78
COL=0
ROW=ROW+1
ENDI
IF ROW>=20 .AND. AD<>3
ROW=3
ENDI
ENDI
SET COLOR TO /W
@ 20,0 SAY 'FILE SIZE VOLUME DATE'+;
' PATH Added :'
@ 20,60 SAY STR(CT-1,3)+' Record(s)'
SET COLOR TO U+
@ 21,0 SAY NAME+'.'+EXT+' '+STR(SIZE,6)+;
' '+VOL+' '+DTOC(DATE)+' '+PATH
PREVIOUS=NAME+'.'+EXT
SET COLOR TO W
IF AD=1 .AND. COMFLAG=1
REPL COMMENTS WITH ACOM
@ 23,0 SAY 'AUTO COMMENT: '+ACOM
@ 23,50 SAY 'ID: '+IDSPEC
ENDI
IF AD=2 .OR. AD=3
IF COMFLAG=1
REPL COMMENTS WITH ACOM
@ 23,0 SAY 'AUTO COMMENT: '+ACOM
ELSE
@ 23,0 SAY 'Comments: ' GET COMMENTS
@ 23,50 SAY 'ID: '+IDSPEC
ENDI
@ 23,60 SAY 'Catagory: ' GET CAT
READ
CLEA GETS
ENDI
ENDI
select temp
SKIP
ENDD
FINISH=RECNO()
ENDI
ENDI
close databases
ERAS catdir.txt
ERAS cattemp.dbf
SET safety on
SET COLOR TO W
@ 20,0 CLEAR
RETU
PROCEDURE ADDFILE
SET TALK OFF
STOR 'Y' TO ANOTHER
STOR 0 TO BY
STOR ' ' TO SN,SE
SELECT 2
USE &DP:CATALOG INDEX &IN:NAME_EXT
DO WHIL UPPER(ANOTHER)='Y'
CLEA
SET COLOR TO W+
@ 1,0 SAY 'DSK-CATV1.0'
@ 1,36 SAY DTOC(DATE())
@ 1,70 SAY 'JoLie(85)'
@ 3,32 SAY 'ADD FILE OPTIONS'
SET COLOR TO W
@ 8,27 SAY '[1] Enter dupes to database'
@ 9,31 SAY 'and log to dupe file'
@ 11,27 SAY '[2] Do not allow duplicates.'
@ 20,0 SAY 'Enter choice ' GET BY PICTURE "9" RANGE 1,2
READ
CLEA GETS
SET COLOR TO W
SELECT 2
STOR 0 TO ADRECNO
APPE BLAN
ADRECNO=RECNO()
DO WHIL .T.
CLEA
SET COLOR TO W+
@ 1,0 SAY 'DSK-CATV1.0'
@ 1,36 SAY DTOC(DATE())
@ 1,70 SAY 'JoLie(85)'
@ 3,32 SAY 'ADD NEW FILE'
SET COLOR TO W
STOR SPACE(8) TO SN,SE
@ 7,0 SAY 'Record number :'+STR(RECNO())
@ 9,0 SAY 'File name :' GET SN PICTURE "XXXXXXXX"
@ 9,20 SAY '.' GET SE PICTURE "XXX"
READ
CLEA GETS
SN=TRIM(SN)
SE=TRIM(SE)
SEEK SN-SE
IF .NOT. EOF()
SET BELL ON
?? CHR(7)
SET BELL OFF
@ 9,27 SAY '<- THIS IS ALREADY IN THE CATALOG'
IF BY=1
GO ADRECNO
@ 10,30 SAY 'Marking file into DUPE system'
REPL DUPE WITH '*'
REPL NAME WITH SN,EXT WITH SE
@ 11,0 SAY CHR(17)+NAME+'.'+EXT+CHR(16)
@ 12,0 SAY 'Size :' GET SIZE
@ 13,0 SAY 'Date :' GET DATE
@ 14,0 SAY 'Volume :' GET VOL
@ 15,0 SAY 'Catagory :' GET CAT
@ 16,0 SAY 'ID :' GET ID
@ 17,0 SAY 'Comments :' GET COMMENTS
READ
CLEA GETS
NAME=TRIM(NAME)
EXT=TRIM(EXT)
VOL=TRIM(VOL)
PATH=TRIM(PATH)
ID=TRIM(ID)
EXIT
ELSE
GO ADRECNO
LOOP
EXIT
ENDI
ENDI
GO ADRECNO
REPL NAME WITH SN,EXT WITH SE
@ 11,0 SAY CHR(17)+NAME+'.'+EXT+CHR(16)
@ 12,0 SAY 'Size :' GET SIZE
@ 13,0 SAY 'Date :' GET DATE
@ 14,0 SAY 'Volume :' GET VOL
@ 15,0 SAY 'Catagory :' GET CAT
@ 16,0 SAY 'ID :' GET ID
@ 17,0 SAY 'Comments :' GET COMMENTS
READ
CLEA GETS
NAME=TRIM(NAME)
EXT=TRIM(EXT)
VOL=TRIM(VOL)
PATH=TRIM(PATH)
ID=TRIM(ID)
EXIT
ENDD
@ 20,0 SAY 'ANOTHER ?[Y/N]' GET ANOTHER PICTURE "X"
READ
CLEA GETS
IF UPPER(ANOTHER)='N'
CLOSE DATABASES
RETU
ELSE
ANOTHER='Y'
ENDI
ENDD
RETU
PROCEDURE DISPOPT
PARAMETER DCHOICE,SPEC,RW,VL,CT,ACC,TOT,FLAG
SET DELETED ON
DO CASE
CASE DCHOICE=1
CLEA
USE &DP:CATALOG
DISP OFF ALL NAME,EXT,SIZE,DATE,VOL,PATH
WAIT
RETU
CASE DCHOICE=2
STOR 0 TO CT,ACC,TOT
CLEA
SET COLOR TO U+
@ 1,0 SAY 'NAME SIZE CAT PATH '+;
' VOLUME ID#'
SET COLOR TO U+*
IF VL=2
@ 1,60 SAY 'VOLUME'
ELSE
@ 1,71 SAY 'ID#'
ENDI
SET COLOR TO W
IF VL=1
USE &DP:CATALOG INDEX &IN:ID
ELSE
USE &DP:CATALOG INDEX &IN:VOLUME
ENDI
SEEK SPEC
DO WHIL .NOT. EOF()
DO CASE
CASE VL=1
IF TRIM(ID)<>SPEC
EXIT
ENDI
CASE VL=2
IF TRIM(VOL)<>SPEC
EXIT
ENDI
ENDC
CT=CT+1
ACC=ACC+SIZE
RW=RW+1
IF RW>=23
RW=2
WAIT
@ 0,0 CLEAR
SET COLOR TO U+
@ 1,0 SAY 'NAME SIZE CAT PATH '+;
' VOLUME ID#'
SET COLOR TO U+*
IF VL=2
@ 1,60 SAY 'VOLUME'
ELSE
@ 1,71 SAY 'ID#'
ENDI
SET COLOR TO W
ENDI
@ RW,0 SAY NAME+'.'+EXT+' '+STR(SIZE)+' '+CAT+' '+;
' '+PATH+' '+VOL+' '+ID
IF DUPE='*'
@ RW,13 SAY CHR(15)
ENDI
SKIP
ENDD
WAIT
CLEA
SET COLOR TO W+
@ 1,0 SAY 'DSK-CATV1.0'
@ 1,36 SAY DTOC(DATE())
@ 1,70 SAY 'JoLie(85)'
SET COLOR TO W
@ 2,0 SAY 'Statistics: '+SPEC
@ 4,0 SAY 'Total files = '+STR(CT)
@ 6,0 SAY 'Total bytes = '+STR(ACC)
@ 8,0 say '360K Drive = '
@ 8,30 SAY 'Estimated bytes remaining'
@ 9,30 SAY 'Estimated bytes remaining'
@ 8,15 SAY 362000-ACC
@ 9,15 SAY 321000-ACC
@ 9,0 SAY '320K Drive = '
?
?
WAIT
RETU
CASE DCHOICE=3
STOR 0 TO CT,ACC
CLEA
SET COLOR TO U+
@ 1,0 SAY 'NAME SIZE DATE PATH '+;
' VOLUME '
SET COLOR TO U+*
@ 1,33 SAY 'PATH'
SET COLOR TO W
USE &DP:CATALOG INDEX &IN:PATH
FIND "&SPEC"
DO WHIL .NOT. EOF()
IF PATH=SPEC
RW=RW+1
CT=CT+1
ACC=ACC+SIZE
IF RW>=23
RW=2
WAIT
@ 0,0 CLEAR
SET COLOR TO U+
@ 1,0 SAY 'NAME SIZE DATE PATH '+;
' VOLUME '
SET COLOR TO U+*
@ 1,33 SAY 'PATH'
SET COLOR TO W
ENDI
@ RW,0 SAY NAME+'.'+EXT+' '+STR(SIZE)+' '+DTOC(DATE)+;
' '+PATH+' '+VOL
IF DUPE='*'
@ RW,13 SAY CHR(15)
ENDI
ENDI
SKIP
ENDD
WAIT
CLEA
SET COLOR TO W+
@ 1,0 SAY 'DSK-CATV1.0'
@ 1,36 SAY DTOC(DATE())
@ 1,70 SAY 'JoLie(85)'
SET COLOR TO W
@ 2,0 SAY 'Statistics: '+SPEC
@ 4,0 SAY 'Total files = '+STR(CT)
@ 6,0 SAY 'Total bytes = '+STR(ACC)+' used in this sub-dir.'
?
?
WAIT
RETU
CASE DCHOICE=4
CLEA
SET COLOR TO U+
@ 1,0 SAY 'NAME SIZE DATE PATH '+;
' VOLUME '
SET COLOR TO U+*
@ 1,9 SAY 'EXT'
SET COLOR TO W
USE &DP:CATALOG INDEX &IN:EXTENSN
SEEK SPEC
DO WHIL .NOT. EOF()
IF TRIM(EXT)<>TRIM(SPEC)
EXIT
ENDI
RW=RW+1
IF RW>=23
RW=2
WAIT
@ 0,0 CLEAR
SET COLOR TO U+
@ 1,0 SAY 'NAME SIZE DATE PATH '+;
' VOLUME '
SET COLOR TO U+*
@ 1,9 SAY 'EXT'
SET COLOR TO W
ENDI
@ RW,0 SAY NAME+'.'+EXT+' '+STR(SIZE)+' '+DTOC(DATE)+;
' '+PATH+' '+VOL
IF DUPE='*'
@ RW,13 SAY CHR(15)
ENDI
SKIP
ENDD
WAIT
RETU
CASE DCHOICE=5
CLEA
SET COLOR TO U+
@ 1,0 SAY 'NAME SIZE DATE PATH '+;
' VOLUME '
SET COLOR TO U+*
@ 1,5 SAY 'STRING'
SET COLOR TO W
SPEC=TRIM(SPEC)
USE &DP:CATALOG INDEX &IN:NAME_EXT
SEEK SPEC
DO WHIL .NOT. EOF()
IF TRIM(NAME)=SPEC
RW=RW+1
IF RW>=23
RW=2
WAIT
@ 0,0 CLEAR
SET COLOR TO U+
@ 1,0 SAY 'NAME SIZE DATE PATH '+;
' VOLUME '
SET COLOR TO U+*
@ 1,5 SAY 'DUP'
SET COLOR TO W
ENDI
@ RW,0 SAY NAME+'.'+EXT+' '+STR(SIZE)+' '+DTOC(DATE)+;
' '+PATH+' '+VOL
IF DUPE='*'
@ RW,13 SAY CHR(15)
ENDI
ENDI
SKIP
ENDD
WAIT
RETU
CASE DCHOICE=6
CLEA
SET COLOR TO U+
@ 1,0 SAY 'NAME SIZE COMMENTS '+;
' VOLUME CAT ID# '
SET COLOR TO U+*
@ 1,24 SAY 'COMMENTS'
@ 1,68 SAY 'CAT'
SET COLOR TO W
USE &DP:CATALOG INDEX &IN:CATAGORY
FIND "&SPEC"
DO WHIL .NOT. EOF()
IF TRIM(CAT)=SPEC
RW=RW+1
IF RW>=23
RW=2
WAIT
@ 0,0 CLEAR
SET COLOR TO U+
@ 1,0 SAY 'NAME SIZE COMMENTS '+;
' VOLUME CAT ID# '
SET COLOR TO U+*
@ 1,24 SAY 'COMMENTS'
@ 1,68 SAY 'CAT'
SET COLOR TO W
ENDI
@ RW,0 SAY NAME+'.'+EXT+' '+STR(SIZE)+' '+COMMENTS+' '+;
' '+VOL+' '+CAT+' '+ID
IF DUPE='*'
@ RW,13 SAY CHR(15)
ENDI
ENDI
SKIP
ENDD
WAIT
RETU
CASE DCHOICE=7
CLEA
USE &DP:CATALOG
DISP OFF FOR DATE=CTOD(SPEC) NAME,EXT,SIZE,DATE,TIME,VOL,CAT,ID
WAIT
RETU
CASE DCHOICE=8
CLEA
SET COLOR TO U+
@ 1,0 SAY 'NAME SIZE DATE PATH '+;
' VOLUME ID# CAT'
SET COLOR TO U+*
@ 1,76 SAY 'CAT'
SET COLOR TO W
USE &DP:CATALOG INDEX &IN:CATAGORY
FIND "&SPEC"
DO WHIL .NOT. EOF()
IF TRIM(CAT)=SPEC
RW=RW+1
IF RW>=23
RW=2
WAIT
@ 0,0 CLEAR
SET COLOR TO U+
@ 1,0 SAY 'NAME SIZE DATE PATH '+;
' VOLUME ID# CAT'
SET COLOR TO U+*
@ 1,76 SAY 'CAT'
SET COLOR TO W
ENDI
@ RW,0 SAY NAME+'.'+EXT+' '+STR(SIZE)+' '+DTOC(DATE)+;
' '+SUBSTR(PATH,1,25)+' '+VOL+' '+ID+' '+CAT
IF DUPE='*'
@ RW,13 SAY CHR(15)
ENDI
ENDI
SKIP
ENDD
WAIT
RETU
CASE DCHOICE=9
SPEC=TRIM(SPEC)
CLEA
SET COLOR TO U+
@ 1,0 SAY 'NAME SIZE DATE PATH '+;
' VOLUME CAT ID#'
SET COLOR TO U+*
@ 1,5 SAY 'STRING'
SET COLOR TO W
USE &DP:CATALOG
LOCA FOR SUBSTR(NAME,1,(LEN(SPEC)))=TRIM(SPEC)
DO WHIL SUBSTR(NAME,1,(LEN(SPEC)))=TRIM(SPEC) .AND. .NOT. EOF()
RW=RW+1
IF RW>=23
RW=2
WAIT
@ 0,0 CLEAR
SET COLOR TO U+
@ 1,0 SAY 'NAME SIZE DATE PATH '+;
' VOLUME CAT ID#'
SET COLOR TO U+*
@ 1,5 SAY 'STRING'
SET COLOR TO W
ENDI
@ RW,0 SAY NAME+'.'+EXT+' '+STR(SIZE)+' '+DTOC(DATE)+;
' '+SUBSTR(PATH,1,25)+' '+VOL+' '+CAT+' '+ID
IF DUPE='*'
@ RW,13 SAY CHR(15)
ENDI
CONT
ENDD
WAIT
RETU
CASE DCHOICE=0
CLOSE DATABASES
STOR 0 TO FLAG
RETU
ENDC
ENDD
RETU
PROCEDURE CATVIEW
SET COLOR TO W+
@ 2,34 SAY CHR(17)+'CATAGORIES'+CHR(16)
SET COLOR TO W
@ 3,0 SAY L1
@ 4,0 SAY L2
@ 5,0 SAY L3
@ 6,0 SAY '================================================================================'
RETU
PROCEDURE UTILITIES
PARAMETER UCHOICE,FLAG
SET TALK OFF
CLEA
STOR 0 TO UOPT
STOR SPACE(64) TO USPEC
CLEA
DO CASE
CASE UCHOICE=1
SET COLOR TO W+
@ 1,0 SAY 'DSK-CATV1.0'
@ 1,36 SAY DTOC(DATE())
@ 1,70 SAY 'JoLie(85)'
SET COLOR TO W
@ 5,33 SAY 'READ DIRECTORY'
@ 7,33 SAY '[1] dBASE Files'
@ 8,33 SAY '[2] All Files'
@ 9,33 SAY '[3] Return'
STOR 0 TO WDIR
@ 20,20 SAY 'Enter choice ' GET WDIR PICTURE "9" RANGE 1,3
READ
CLEA GETS
STOR DP+':'+SPACE(27) TO USPEC
@ 21,0 SAY 'Drive Spec ' GET USPEC
READ
CLEA GETS
IF WDIR=0
RETU
ENDI
CLEA
IF WDIR=1
DIR &USPEC
ELSE
!DIR &USPEC
ENDI
WAIT
CASE UCHOICE=2
SET COLOR TO W+
@ 1,0 SAY 'DSK-CATV1.0'
@ 1,36 SAY DTOC(DATE())
@ 1,70 SAY 'JoLie(85)'
SET COLOR TO W
@ 5,33 SAY 'DELETE A FILE'
SET COLOR TO W+*
@ 7,0 SAY 'WARNING !!'
SET COLOR TO W
@ 7,20 SAY 'This will erase the specified file.'
@ 8,20 SAY 'press RETURN to abort.'
@ 10,0 SAY 'File Spec ' GET USPEC
READ
CLEA GETS
IF USPEC>' '
!DEL &USPEC
ELSE
@ 20,40 SAY 'DELETE ABORTED'
RETU
ENDI
CASE UCHOICE=3
SET COLOR TO W+
@ 1,0 SAY 'DSK-CATV1.0'
@ 1,36 SAY DTOC(DATE())
@ 1,70 SAY 'JoLie(85)'
SET COLOR TO W
@ 5,35 SAY 'COPY FILE'
@ 10,0 SAY 'File Spec ' GET USPEC
READ
CLEA GETS
!COPY &USPEC
CASE UCHOICE=4
SET COLOR TO W+
@ 1,0 SAY 'DSK-CATV1.0'
@ 1,36 SAY DTOC(DATE())
@ 1,70 SAY 'JoLie(85)'
SET COLOR TO W
@ 5,34 SAY 'VIEW A FILE'
@ 7,0 SAY 'Use Ctrl-NumLock to freeze display.'
@ 10,0 SAY 'File Spec ' GET USPEC
READ
CLEA GETS
!TYPE &USPEC
WAIT
CASE UCHOICE=5
SET COLOR TO W+
@ 1,0 SAY 'DSK-CATV1.0'
@ 1,36 SAY DTOC(DATE())
@ 1,70 SAY 'JoLie(85)'
SET COLOR TO W
@ 5,34 SAY 'PRINT A FILE'
SET COLOR TO W+*
@ 7,0 SAY 'WARNING !!'
SET COLOR TO W
@ 7,20 SAY 'Make sure that your printer is ready.'
@ 10,0 SAY 'File Spec ' GET USPEC
READ
CLEA GETS
SET PRIN ON
!TYPE &USPEC
SET PRIN OFF
CASE UCHOICE=6
SET COLOR TO W+
@ 1,0 SAY 'DSK-CATV1.0'
@ 1,36 SAY DTOC(DATE())
@ 1,70 SAY 'JoLie(85)'
SET COLOR TO W
@ 5,33 SAY 'RENAME A FILE'
@ 10,0 SAY 'File Spec ' GET USPEC
READ
CLEA GETS
!REN &USPEC
CASE UCHOICE=7
SET COLOR TO W+
@ 1,0 SAY 'DSK-CATV1.0'
@ 1,36 SAY DTOC(DATE())
@ 1,70 SAY 'JoLie(85)'
SET COLOR TO W
@ 5,31 SAY 'DOS PATH FUNCTION'
@ 10,0 SAY 'File Spec ' GET USPEC
READ
CLEA GETS
!PATH &USPEC
CASE UCHOICE=8
SET COLOR TO W+
@ 1,0 SAY 'DSK-CATV1.0'
@ 1,36 SAY DTOC(DATE())
@ 1,70 SAY 'JoLie(85)'
SET COLOR TO W
@ 3,33 SAY 'SUB DIRECTORY'
@ 5,40 SAY '[1] Make Directory {MD}'
@ 6,40 SAY '[2] Remove Directory {RD}'
@ 7,40 SAY 'Enter option ' GET UOPT PICTURE "9" RANGE 1,2
READ
CLEA GETS
@ 10,0 SAY 'File Spec ' GET USPEC
READ
CLEA GETS
IF UOPT=1
SET COLOR TO W+*
@ 5,66 SAY '<='
!MD &USPEC
ELSE
@ 6,66 SAY '<='
!RD &USPEC
SET COLOR TO W
ENDI
CASE UCHOICE=9
STOR 0 TO UMAIN
DO WHIL UMAIN<>5
CLEA
SET COLOR TO W+
@ 1,0 SAY 'DSK-CATV1.0'
@ 1,36 SAY DTOC(DATE())
@ 1,70 SAY 'JoLie(85)'
SET COLOR TO W
@ 5,32 SAY 'dBASE Maintenance'
TEXT
[1] Recall deleted records.
[2] Pack database.
[3] ZAP database.
[4] Re-Index.
[5] EXIT Maint. System.
ENDTEXT
@ 20,0 SAY 'Enter choice ' GET UMAIN PICTURE "9" RANGE 1,5
READ
CLEA GETS
IF UMAIN=1
@ 22,0 CLEAR
STOR DP+':CATALOG INDEX '+IN+':NAME_EXT'+SPACE(37) TO USPEC
@ 22,0 SAY 'Enter Data base ' GET USPEC
READ
CLEA GETS
USE &USPEC
RECA ALL
@ 23,0 SAY 'Recalling all deleted records. Please wait...'
LOOP
ENDI
IF UMAIN=2
CLEA
SET COLOR TO W+
@ 1,0 SAY 'DSK-CATV1.0'
@ 1,36 SAY DTOC(DATE())
@ 1,70 SAY 'JoLie(85)'
SET COLOR TO W
STOR '&DP:CATALOG INDEX &IN:NAME_EXT'+SPACE(38) TO USPEC
@ 5,33 SAY 'CLEAN DATABASE'
@ 7,0 SAY 'This will delete any records marked for deletion.'
@ 8,0 SAY 'To PACK the catalog press RETURN'
@ 11,0 SAY 'Database ' GET USPEC
READ
CLEA GETS
USE &USPEC
PACK
LOOP
ENDI
IF UMAIN=3
CLEA
SET COLOR TO W+
@ 1,0 SAY 'DSK-CATV1.0'
@ 1,36 SAY DTOC(DATE())
@ 1,70 SAY 'JoLie(85)'
SET COLOR TO W
STOR '&DP:CATALOG INDEX &IN:NAME_EXT'+SPACE(38) TO USPEC
@ 5,33 SAY 'CLEAR DATABASE'
SET COLOR TO W+*
@ 7,0 SAY 'WARNING !!'
SET COLOR TO W
@ 7,20 SAY 'THIS WILL REMOVE ALL RECORDS FROM THE DATABASE'
@ 10,0 SAY 'Database ' GET USPEC
READ
CLEA GETS
USE &USPEC
ZAP
LOOP
ENDI
IF UMAIN=4
CLEA
SET COLOR TO W+
@ 1,0 SAY 'DSK-CATV1.0'
@ 1,36 SAY DTOC(DATE())
@ 1,70 SAY 'JoLie(85)'
SET COLOR TO W
@ 5,33 SAY 'REINDEX DATABASE'
USE &DP:CATALOG
SET INDE TO &IN:NAME_EXT
? 'Re-Indexing File names'
REINDEX
CLOSE INDEXES
SET INDE TO &IN:EXTENSN
? 'Re-Indexing File extensions'
REINDEX
CLOSE INDEXES
SET INDE TO &IN:CATAGORY
? 'Re-Indexing catagories'
REINDEX
CLOSE INDEXES
SET INDE TO &IN:DUPE
REINDEX
CLOSE INDEXES
SET INDE TO &IN:PATH
? 'Re-Indexing paths'
REINDEX
CLOSE INDEXES
SET INDE TO &IN:VOLUME
? 'Re-Indexing volumes'
REINDEX
CLOSE INDEXES
SET INDE TO &IN:ID
? 'Re-Indexing ID'
REINDEX
CLOSE INDEXES
LOOP
ENDI
IF UMAIN=5
CLOSE DATABASES
EXIT
ENDI
ENDD
CASE UCHOICE=0
CLOSE DATABASES
STOR 0 TO FLAG
RETU
ENDC
CLOSE DATABASES
RETU
PROCEDURE DUPOPT
PARAMETERS XCHOICE,DSPEC,DEXT
STOR 'NAME .EXT SIZE DATE ID PATH CAT ' TO HEAD
CLEA
SET TALK OFF
USE &DP:CATALOG
DO CASE
CASE XCHOICE=1
STOR 2 TO ROW
SET COLOR TO W+
@ 1,0 SAY 'DSK-CATV1.0'
@ 1,24 SAY DTOC(DATE())+' DUPE SYSTEM'
@ 1,70 SAY 'JoLie(85)'
SET COLOR TO U+
@ 2,0 SAY HEAD
SET COLOR TO W
LOCA FOR DUPE='*'
DO WHIL DUPE='*' .AND. .NOT. EOF()
ROW=ROW+1
IF ROW>=22
ROW=3
WAIT
@ 3,0 CLEAR
ENDI
@ ROW,0 SAY NAME+'.'+EXT+' '+STR(SIZE)+' '+DTOC(DATE)+' '+;
ID+' '+PATH+' '+CAT
CONT
ENDD
WAIT
CASE XCHOICE=2
STOR 2 TO ROW
SET COLOR TO W+
@ 1,0 SAY 'DSK-CATV1.0'
@ 1,24 SAY DTOC(DATE())+' DUPE SYSTEM'
@ 1,70 SAY 'JoLie(85)'
SET COLOR TO U+
@ 2,0 SAY HEAD
SET COLOR TO W
LOCA FOR DUPE='*' .AND. NAME=DSPEC .AND. EXT=DEXT
DO WHIL NAME=DSPEC .AND. EXT=DEXT
ROW=ROW+1
IF ROW>=22
ROW=3
WAIT
@ 3,0 CLEAR
ENDI
@ ROW,0 SAY NAME+'.'+EXT+' '+STR(SIZE)+' '+DTOC(DATE)+' '+;
ID+' '+PATH+' '+CAT
CONT
ENDD
WAIT
CASE XCHOICE=3
STOR 2 TO ROW
SET COLOR TO W+
@ 1,0 SAY 'DSK-CATV1.0'
@ 1,24 SAY DTOC(DATE())+' DUPE SYSTEM'
@ 1,70 SAY 'JoLie(85)'
SET COLOR TO U+
@ 2,0 SAY HEAD
SET COLOR TO W
LOCA FOR DUPE='*' .AND. PATH=DSPEC
DO WHIL PATH=DSPEC
ROW=ROW+1
IF ROW>=22
ROW=3
WAIT
@ 3,0 CLEAR
ENDI
@ ROW,0 SAY NAME+'.'+EXT+' '+STR(SIZE)+' '+DTOC(DATE)+' '+;
ID+' '+PATH+' '+CAT
CONT
ENDD
WAIT
CASE XCHOICE=4
STOR 2 TO ROW
SET COLOR TO W+
@ 1,0 SAY 'DSK-CATV1.0'
@ 1,24 SAY DTOC(DATE())+' DUPE SYSTEM'
@ 1,70 SAY 'JoLie(85)'
SET COLOR TO U+
@ 2,0 SAY HEAD
SET COLOR TO W
LOCA FOR DUPE='*' .AND. ID=DSPEC
DO WHIL ID=DSPEC
ROW=ROW+1
IF ROW>=22
ROW=3
WAIT
@ 3,0 CLEAR
ENDI
@ ROW,0 SAY NAME+'.'+EXT+' '+STR(SIZE)+' '+DTOC(DATE)+' '+;
ID+' '+PATH+' '+CAT
CONT
ENDD
WAIT
CASE XCHOICE=5
@ 3,0 CLEAR
@ 5,0 SAY 'Deleting all records in the catalog that are duplicates'
DELE FOR DUPE='*'
CASE XCHOICE=6
@ 3,0 CLEAR
@ 5,0 SAY 'Deleting all duplicates of '+DSPEC+'.'+DEXT
DELE FOR DUPE='*' .AND. NAME=DSPEC .AND. EXT=DEXT
CASE XCHOICE=7
@ 3,0 CLEAR
@ 5,0 SAY 'Deleting all duplicates of '+DSPEC
DELE FOR DUPE='*' .AND. PATH=DSPEC
CASE XCHOICE=8
@ 3,0 CLEAR
@ 5,0 SAY 'Deleting all duplicates of '+DSPEC
DELE FOR DUPE='*' .AND. ID=DSPEC
CASE XCHOICE=9
@ 3,0 CLEAR
STOR 2 TO ROW
SET COLOR TO W+
@ 1,0 SAY 'DSK-CATV1.0'
@ 1,24 SAY DTOC(DATE())+' DUPE SYSTEM'
@ 1,70 SAY 'JoLie(85)'
SET COLOR TO U+
@ 2,0 SAY 'NAME SIZE DATE COMMENT ID CAT '
SET COLOR TO W
LOCA FOR DUPE='*'
DO WHIL DUPE='*' .AND. .NOT. EOF()
ROW=ROW+1
IF ROW>=22
ROW=3
WAIT
@ 3,0 CLEAR
ENDI
@ ROW,0 SAY NAME+'.'+EXT+' '+STR(SIZE)+' '+DTOC(DATE)+' '+;
COMMENTS+' '+ID+' '+CAT
CONT
ENDD
WAIT
ENDC
CLOSE DATABASES
RETU
PROCEDURE PRINTOP
PARAMETERS PCHOICE
SET TALK OFF
STOR 0 TO LN
STOR 1 TO PG
STOR 'DSK-CAT V1.0' TO LOGO
STOR 'Page # ' TO NEW
STOR 'NAME SIZE DATE TIME VOLUME '+;
' PATH ' TO HEAD4
STOR '========================================'+;
'========================================' TO HEAD5
STOR '----------------------------------------'+;
'----------------------------------------' TO HEAD6
STOR '=' TO LO
STOR ' ' TO IX
DO CASE
CASE PCHOICE=1
CLEA
? ' PRINTING CATALOG... PLEASE WAIT'
SET DEVICE TO PRINT
USE &DP:CATALOG INDEX &IN:NAME_EXT
GO TOP
DO WHIL .NOT. EOF()
LN=LN+1
IF LN>=55
PG=PG+1
LN=1
EJEC
ENDI
IF LN=1
@ 1,0 SAY LOGO
@ 1,36 SAY DTOC(DATE())
@ 1,65 SAY NEW+STR(PG,4)
@ 4,0 SAY HEAD4
@ 5,0 SAY HEAD5
LN=6
ENDI
@ LN,0 SAY NAME+'.'+EXT
IF DUPE='*'
@ LN,12 SAY '*'
ENDI
@ LN,13 SAY STR(SIZE,8)
@ LN,23 SAY DATE
@ LN,33 SAY TIME
@ LN,40 SAY VOL
@ LN,51 SAY PATH
LN=LN+1
@ LN,22 SAY '|'+LOWER(COMMENTS)
@ LN,58 SAY '|'+'ID: '+ID
@ LN,72 SAY '|'+'CAT '+CAT
LN=LN+1
@ LN,0 SAY HEAD6
SKIP
ENDD
@ LN,79 SAY CHR(13)
SET DEVICE TO SCREEN
CLOSE DATABASES
RETU
CASE PCHOICE=2
CLEA
STOR 0 TO PSEL
SET COLOR TO W+
@ 1,0 SAY 'DSK-CATV1.0'
@ 1,36 SAY DTOC(DATE())
@ 1,70 SAY 'JoLie(85)'
SET COLOR TO W
@ 6,35 SAY '[1] Volume.'
@ 7,35 SAY '[2] ID.'
@ 20,0 SAY 'Enter choice ' GET PSEL PICTURE "9" RANGE 1,2
READ
CLEA GETS
IF PSEL=1
STOR 'VOLUME' TO IX
STOR 'VOL' TO PFIELD
STOR SPACE(11) TO PSPEC
@ 22,0 SAY 'Enter Label ' GET PSPEC
READ
CLEA GETS
ELSE
STOR 'ID' TO PFIELD,IX
STOR ' ' TO PSPEC
@ 22,0 SAY 'Enter ID ' GET PSPEC
READ
CLEA GETS
ENDI
CASE PCHOICE=3
STOR 'PATH' TO PFIELD,IX
STOR SPACE(29) TO PSPEC
@ 23,43 SAY 'Path ' GET PSPEC
READ
CLEA GETS
CASE PCHOICE=4
STOR 'EXT' TO PFIELD
STOR ' ' TO PSPEC
STOR 'EXTENSN' TO IX
@ 23,43 SAY 'Enter Ext. ' GET PSPEC
READ
CLEA GETS
CASE PCHOICE=5
STOR 'CAT' TO PFIELD
STOR ' ' TO PSPEC
STOR 'CATAGORY' TO IX
@ 23,43 SAY 'Enter Catagory ' GET PSPEC
READ
CLEA GETS
CASE PCHOICE=6
STOR '>' TO LO
STOR 'COMMENTS' TO PFIELD
STOR ' ' TO PSPEC
STOR 'NAME_EXT' TO IX
CASE PCHOICE=7
STOR 'DTOC(DATE)' TO PFIELD
STOR ' ' TO PSPEC
STOR 'NAME_EXT' TO IX
@ 23,43 SAY 'Enter Date ' GET PSPEC PICTURE "99/99/99"
READ
CLEA GETS
CASE PCHOICE=8
STOR 'DUPE' TO PFIELD
STOR '*' TO PSPEC
STOR 'DUPE' TO IX
CASE PCHOICE=9
SET TALK OFF
CLEA
STOR 'Vol:__________________________ID:_____' TO LB1
STOR '[____________________________________]' TO LB2
STOR 'Date:________________________________]' TO LB3
STOR 0 TO LAB
DO WHIL LAB<>4
STOR 0 TO CNT,AMOUNT,RW,TRIP,LAB
STOR ' ' TO REPEAT
SET DEVICE TO SCREEN
SET COLOR TO W+
@ 1,0 SAY 'D-CATV1.0'
@ 1,36 SAY DTOC(DATE())
@ 1,70 SAY 'JoLie(85)'
SET COLOR TO U+
@ 5,30 SAY 'DISK LABEL GENERATOR'
SET COLOR TO W
@ 8,33 SAY '[1] Cataloged.'
@ 9,33 SAY '[2] Blanks.'
@ 10,33 SAY '[3] 2 Accross.'
@ 11,33 SAY '[4] EXIT.'
@ 13,22 SAY ' '
@ 20,0 SAY 'Enter choice ' GET LAB PICTURE "9" RANGE 1,4
READ
CLEA GETS
IF LAB=4
RETU
ENDI
DO CASE
CASE LAB=1
@ 13,27 SAY 'PRINTING LABELS'
SET DEVICE TO PRINT
USE &DP:CATALOG INDEX &IN:ID
GO TOP
DO WHIL .NOT. EOF()
IF ID<>REPEAT
REPEAT=ID
TRIP=0
IF RW>=55
RW=0
EJEC
ENDI
@ RW,0 SAY 'VOL:'+VOL
@ RW,29 SAY 'ID:'+ID
DO WHIL TRIP<5
TRIP=TRIP+1
RW=RW+1
@ RW,0 SAY LB2
ENDD
RW=RW+1
@ RW,0 SAY 'Date: '+DTOC(DATE)
RW=RW+4
IF RW>=55
RW=0
EJEC
ENDI
ELSE
SKIP
ENDI
SKIP
ENDD
CLOSE DATABASES
@ RW,0 SAY CHR(13)
SET DEVICE TO SCREEN
SET BELL ON
?? CHR(7)
SET BELL OFF
@ 13,22 SAY 'DONE'
LOOP
CASE LAB=2
@ 21,0 SAY 'How many labels do you want ' GET AMOUNT PICTURE "999";
RANGE 1,999
READ
CLEA GETS
CLEA
@ 13,27 SAY 'PRINTING LABELS'
SET DEVICE TO PRINT
DO WHIL CNT<AMOUNT
CNT=CNT+1
TRIP=0
IF RW>=55
RW=0
EJEC
ENDI
@ RW,0 SAY LB1
DO WHIL TRIP<5
TRIP=TRIP+1
RW=RW+1
@ RW,0 SAY LB2
ENDD
RW=RW+1
@ RW,0 SAY LB3
RW=RW+4
IF RW>=55
RW=0
EJEC
ENDI
ENDD
@ RW,0 SAY CHR(13)
LOOP
CASE LAB=3
@ 21,0 SAY 'How many labels do you want ' GET AMOUNT PICTURE "999";
RANGE 1,999
READ
CLEA GETS
CLEA
@ 13,27 SAY 'PRINTING LABELS'
SET DEVICE TO PRINT
DO WHIL CNT<AMOUNT
CNT=CNT+1
TRIP=0
IF RW>=55
RW=0
EJEC
ENDI
@ RW,0 SAY LB1
@ RW,40 SAY LB1
DO WHIL TRIP<5
TRIP=TRIP+1
RW=RW+1
@ RW,0 SAY LB2
@ RW,40 SAY LB2
ENDD
RW=RW+1
@ RW,0 SAY LB3
@ RW,40 SAY LB3
RW=RW+4
IF RW>=55
RW=0
EJEC
ENDI
ENDD
@ RW,0 SAY CHR(13)
LOOP
ENDC
ENDD
ENDC
CLEA
SET COLOR TO W+*
@ 24,25 SAY 'SEARCHING AND PRINTING'
SET COLOR TO W
USE &DP:CATALOG INDEX &IN:&IX
GO TOP
SET DEVICE TO PRINT
IF PCHOICE>1
SEEK PSPEC
ENDI
DO WHIL .NOT. EOF()
IF TRIM(&PFIELD)&LO TRIM(PSPEC)
LN=LN+1
IF LN>=55
PG=PG+1
LN=1
EJEC
ENDI
IF LN=1
@ 1,0 SAY LOGO
@ 1,36 SAY DTOC(DATE())
@ 1,65 SAY NEW+STR(PG,4)
@ 4,0 SAY HEAD4
@ 5,0 SAY HEAD5
LN=6
ENDI
@ LN,0 SAY NAME+'.'+EXT
IF DUPE='*'
@ LN,12 SAY '*'
ENDI
@ LN,13 SAY STR(SIZE,8)
@ LN,23 SAY DATE
@ LN,33 SAY TIME
@ LN,40 SAY VOL
@ LN,51 SAY PATH
LN=LN+1
@ LN,22 SAY '|'+LOWER(COMMENTS)
@ LN,58 SAY '|'+'ID: '+ID
@ LN,72 SAY '|'+'CAT '+CAT
LN=LN+1
@ LN,0 SAY HEAD6
SKIP
ELSE
EXIT
ENDI
ENDD
@ LN,79 SAY CHR(13)
SET DEVICE TO SCREEN
CLOSE DATABASES
RETU
PROCEDURE MENU
PARAMETERS FLAG,CHOICE,DCHOICE,PCHOICE,UCHOICE,LAST
STOR SPACE(80) TO CLEAN
@ 22,0 CLEAR
IF FLAG<0
FLAG=0
ENDI
IF FLAG=0
@ 8,0 SAY CLEAN
SET COLOR TO W+
@ 8,6 SAY CHR(25)+'MAIN MENU'+CHR(25)
SET COLOR TO W
@ 22,0 SAY 'Main choice ' GET CHOICE PICTURE "9" RANGE 0,9
READ
CLEA GETS
DO CASE
CASE CHOICE=3
FLAG=1
CASE CHOICE=4
FLAG=2
CASE CHOICE=8
FLAG=3
OTHE
FLAG=0
ENDC
@ 22,0 CLEAR
ENDI
IF FLAG=1
@ 8,0 SAY CLEAN
@ 22,0 CLEAR
SET COLOR TO W+
@ 8,22 SAY CHR(25)+'DISPLAY OPTIONS'+CHR(25)
SET COLOR TO W
@ 22,22 SAY 'Display ' GET DCHOICE PICTURE "9" RANGE 0,9
READ
CLEA GETS
DO CASE
CASE CHOICE=3
FLAG=1
CASE CHOICE=4
FLAG=2
CASE CHOICE=8
FLAG=3
OTHE
FLAG=0
ENDC
ENDI
IF FLAG=2
@ 8,0 SAY CLEAN
SET COLOR TO W+
@ 8,43 SAY CHR(25)+'PRINT OPTIONS'+CHR(25)
SET COLOR TO W
@ 22,43 SAY 'Print ' GET PCHOICE PICTURE "9" RANGE 0,9
READ
CLEA GETS
DO CASE
CASE CHOICE=3
FLAG=1
CASE CHOICE=4
FLAG=2
CASE CHOICE=8
FLAG=3
OTHE
FLAG=0
ENDC
ENDI
IF FLAG=3
@ 8,0 SAY CLEAN
SET COLOR TO W+
@ 8,59 SAY CHR(25)+'UTILITIES MENU'+CHR(25)
SET COLOR TO W
@ 22,59 SAY 'Utility ' GET UCHOICE PICTURE "9" RANGE 0,9
READ
CLEA GETS
DO CASE
CASE CHOICE=3
FLAG=1
CASE CHOICE=4
FLAG=2
CASE CHOICE=8
FLAG=3
OTHE
FLAG=0
ENDC
ENDI
RETU
RETU